05.03 일지
Splash Screen 띄우기
새로운 Activity 생성
:Activity 객체 생성, 레이아웃 XML 파일생성
Activity: 구분되는 스크린, 라이프사이클 관리를 해줄 수 있다.
레이아웃 XML: 사용하는 UI 컴포넌트들을 XML 파일에 모두 명시
안드로이드 스튜디오에서 UI를 띄우기 위해서
안드로이드 스튜디오에서 Code/Design로 나눠서 관리할 수 있다. -> XML 파일, <UITOOL ~~ / > 안에서 특성정리
다양한 컴포넌트들
ConstraintLayout → 상대적, 유동적으로 컴포넌트 배치
ImageView → 리소스에 저장된 이미지를 띄움
TextView → 리소스에 저장된 String을 띄움
String 리소스 정리 ⇒ @String
사용할 String res/values/strings.xml 파일에 명시
<string name="VAR">RAW STRING</string> ⇒ @String/VAR로 접근
해당 String을 수정하고 싶을 때 일일이 구현로직코드에 들어가서 수정할 필요가 없음.
코드와 데이터를 분리해서 유지보수용이
앱에 쓸 이미지 저장 → 이미지 뷰어
resource manager > import drawables
우선 Density/No Density로 생성
★ No Density 및 다른 것들의 의미가 뭘까? → 이후 알아보기 https://developer.android.com/training/multiscreen/screendensities?hl=ko
SplashActivity → MainActivity 플로우 설정
// 일정 시간 지연 이후 실행하기 위한 코드
Handler(Looper.getMainLooper()).postDelayed({
// 일정 시간이 지나면 MainActivity로 이동
val intent= Intent(this,MainActivity::class.java)
startActivity(intent)
// 이전 키를 눌렀을 때 스플래스 스크린 화면 이동을 방지
finish()
}, 1000) // 시간 1초 이후 실행
android.os.Handler(Looper): 스레드간 통신을 통해서 비동기 처리를 관리
스레드간 통신을 위해서 메시지큐를 사용한다.
Looper: 스레드 메시지 관리 = 스레드간 통신 관리
MainLooper → main thread(UI thread)
Intent: 컴포넌트 통신에 사용됨
해당 코드에서 외부의 MainActivity를 호출한다.
그렇게 코드를 짰는데...
SplashActivity 이후 Main으로 가지 않고 바로 앱이 종료되는 문제발생 ★ 매니페스트 파일에서 구성에 대한 명시가 제대로 됐는지 확인할 것